In the data processing units of current computer systems, system control programs, i.e., the operating system, and application programs are stored in a system memory, for example, a magnetic disc. In the operation of a data processing system, programs are loaded into and executed from a working memory in order to control the work flow of the data processing system within the framework of the operating system and to perform data processing tasks specified by the user within the framework of the application system.
Together with the data processing systems, computing nets were developed in which individual computers intercommunicate. The information exchange which proceed here extensively must be safeguarded against fraudulent manipulations especially in areas of applications such as banking, insurance, business or administration. Such manipulations may take place at the level of the program and possibly lead to the effect that a computer executes undesired, additional, too few, or changed commands. This can result in the evaluation of personal data persons in an unauthorized manner, which can have the consequences that related personal data are fraudulently evaluated, processed and further transferred, and that computer outputs are effected to the advantage of unauthorized persons or cause other types of damage for the user of the computer net or third parties.
Since it is very difficult for a user of a computer net to recognize manipulated programs and to then provide integrity by means of corrective measures, it is desirable to be able to automatically recognize unauthorized manipulation of the programs and to also be able to automatically prevent the execution of these manipulated programs. The only heretofore known processes for securing programs use codes to prevent the unauthorized copying and require special processors for the execution of such programs. Such safety measures prevent an unauthorized commercial use and transfer of the programs but cannot recognize manipulations of programs in computer nets and prevent fraudulent execution of the programs. It is also possible to provide a resource and access check by the application of passwords or users' catalogs, or to keep data private or to take physical measures, such as authorization by means of special switches or keys, in order to obtain a certain protection against unauthorized manipulations. However, these possibilities are comparably worthless when a programmer or similarly qualified personnel has access to the computer net. Based on a special professional knowledge, it is then possible to manipulate programs in spite of protective measures of the type mentioned above.